import {
  BwComPropSetConstValueComEnum,
  BwCustomComPropDataTypeEnum,
  BwCustomComEmitParamDataTypeEnum,
  BwCustomComSoltTypeEnum,
} from '../../../render/models'
import type {
  BwCustomComEmitInfoModel,
  BwCustomComSlotInfoModel,
  BwCustomComPropInfoModel,
} from '../../../render/models'

/** 组件属性 */
const comAttrs: Array<BwCustomComPropInfoModel> = [
  {
    key: 'is',
    name: '渲染控件',
    isRequire: false,
    defaultValue: null,
    dataType: [
      BwCustomComPropDataTypeEnum.string,
      BwCustomComPropDataTypeEnum.object,
    ],
    defaultValueDataType: null,
    constValueSetCom: BwComPropSetConstValueComEnum.input,
    constValueSetComProps: null,
    remark: '',
  },
  {
    key: 'attrs',
    name: '控件属性',
    isRequire: false,
    defaultValue: null,
    dataType: [BwCustomComPropDataTypeEnum.object],
    defaultValueDataType: BwCustomComPropDataTypeEnum.object,
    constValueSetCom: BwComPropSetConstValueComEnum.textarea,
    constValueSetComProps: undefined,
    remark: '控件属性集合',
  },
  {
    key: 'events',
    name: '控件事件',
    isRequire: false,
    defaultValue: null,
    dataType: [BwCustomComPropDataTypeEnum.object],
    defaultValueDataType: BwCustomComPropDataTypeEnum.object,
    constValueSetCom: BwComPropSetConstValueComEnum.textarea,
    constValueSetComProps: null,
    remark: '控件事件集合',
  },
]

/** 组件事件 */
const comEmits: Array<BwCustomComEmitInfoModel> = []

/** 组件插槽 */
const comSlots: Array<BwCustomComSlotInfoModel> = []

export const vueComponentInfo = {
  comAttrs,
  comEmits,
  comSlots,
}
